package com.cskaoyan.mapper;

import com.cskaoyan.vo.Account;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 创建日期: 2021/11/29 14:34
 *
 * @author ciggar
 */
public interface AccountMapper {

//   一个简单参数
    Account selectAccountById(@Param("id") Integer id);

    // 通过${} 来取值
    Account selectAccountByIdUse$(@Param("id") Integer id);

//    多个参数
    // 根据Id修改名字和角色
    int updateAccountNameAndRoleById(@Param("id")Integer id,
                                     @Param("name") String name,
                                     @Param("role") String role);


    // 传入对象
    int insertAccount(Account account);

    // 传入对象 加注解
    int insertAccountWithParam(@Param("account") Account account);

    // 传入Map
    // 规定：map里面只能传 name 和 role
    List<Account> selectAccountListByMap(@Param("map") Map<String,Object> map);

    // 按位置来传值
    List<Account> selectAccountListByNameOrRole(String name,String role);

    // 传入列名
    List<Account> selectAccountOrderByColumn(@Param("columnName") String columnName);

    // 传入表名
    Account selectAccountByIdAndTableName(@Param("tableName") String tableName,
                                          @Param("id") Integer id);
}
